
; SHELL32.DLL structures and constants

struct NOTIFYICONDATA
   .cbSize           dd ?
   .hWnd             dd ?
   .uID              dd ?
   .uFlags           dd ?
   .uCallbackMessage dd ?
   .hIcon            dd ?
   .szTip            CHAR 64
ends

; Taskbar icon messages

NIM_ADD        = 0
NIM_MODIFY     = 1
NIM_DELETE     = 2
NIM_SETFOCUS   = 3
NIM_SETVERSION = 4

; Taskbar icon flags

NIF_MESSAGE    = 01h
NIF_ICON       = 02h
NIF_TIP        = 04h
NIF_STATE      = 08h
NIF_INFO       = 10h
NIF_GUID       = 20h


; for SHBrowseForFolder

struct BROWSEINFO
    .hwndOwner          dd ?
    .pidlRoot           dd ?
    .pszDisplayName     dd ?
    .lpszTitle          dd ?
    .ulFlags            dd ?
    .lpfn               dd ?
    .lParam             dd ?
    .iImage             dd ?
ends

BIF_RETURNONLYFSDIRS   = $0001
BIF_DONTGOBELOWDOMAIN  = $0002
BIF_STATUSTEXT         = $0004
BIF_RETURNFSANCESTORS  = $0008
BIF_EDITBOX            = $0010
BIF_VALIDATE           = $0020

BFFM_INITIALIZED       = 1
BFFM_SELCHANGED        = 2
BFFM_VALIDATEFAILEDA   = 3      ; lParam:szPath ret:TRUE(cont), FALSE(EndDialog)
BFFM_VALIDATEFAILEDW   = 4      ; lParam:wzPath ret:TRUE(cont), FALSE(EndDialog)

; messages to browser

BFFM_SETSTATUSTEXTA    = WM_USER + 100
BFFM_ENABLEOK          = WM_USER + 101
BFFM_SETSELECTIONA     = WM_USER + 102
BFFM_SETSELECTIONW     = WM_USER + 103
BFFM_SETSTATUSTEXTW    = WM_USER + 104

BFFM_SETSTATUSTEXT     = BFFM_SETSTATUSTEXTA
BFFM_SETSELECTION      = BFFM_SETSELECTIONA


 